
var prefix = "/sys/fileAudit"
$(function() {
	load();
});

function load() {
	$('#exampleTable')
		.bootstrapTable(
			{
				method : 'get', // 服务器数据的请求方式 get or post
				url : prefix + "/list", // 服务器数据的加载地址
				//	showRefresh : true,
				//	showToggle : true,
				//	showColumns : true,
				iconSize : 'outline',
				toolbar : '#exampleToolbar',
				striped : true, // 设置为true会有隔行变色效果
				dataType : "json", // 服务器返回的数据类型
				pagination : true, // 设置为true会在底部显示分页条
				// queryParamsType : "limit",
				// //设置为limit则会发送符合RESTFull格式的参数
				singleSelect : false, // 设置为true将禁止多选
				// contentType : "application/x-www-form-urlencoded",
				// //发送到服务器的数据编码类型
				pageSize : 10, // 如果设置了分页，每页数据条数
				pageNumber : 1, // 如果设置了分布，首页页码
				//search : true, // 是否显示搜索框
				showColumns : false, // 是否显示内容下拉框（选择显示的列）
				sidePagination : "server", // 设置在哪里进行分页，可选值为"client" 或者 "server"
				queryParams : function(params) {
					var formData = $('#formSearch').serializeObject();
					if(!formData){
						formData = {};
					}
					formData.limit = params.limit;
					formData.offset = params.offset;
					formData.sort = this.sortName;
					formData.order = this.sortOrder;
					formData.auditstate = 0;
					formData.flag = 2;
					return formData;
				},
				// //请求服务器数据时，你可以通过重写参数的方式添加一些额外的参数，例如 toolbar 中的参数 如果
				// queryParamsType = 'limit' ,返回参数必须包含
				// limit, offset, search, sort, order 否则, 需要包含:
				// pageSize, pageNumber, searchText, sortName,
				// sortOrder.
				// 返回false将会终止请求
				columns : [
					{
						checkbox : true
					},
					{
						field : 'filename',
						title : '文件名' ,
						align: "left"
					},
					{
						field : 'filesizeStr',
						title : '文件大小',
						align: "left"
					},
					{
						field : 'filetype',
						title : '文件类型',
						align: "left"
					},
					{
						field : 'sendname',
						title : '发送人' ,
						align: "left"
					},
					{
						field : 'targetname',
						title : '接收人' ,
						align: "left"
					},
					{
						field : 'auditname',
						title : '审批人' ,
						align: "left"
					},
					{
						field : 'sendtime',
						title : '发送时间' ,
						align: "left"
					},
					{
						field : 'auditstate',
						title : '状态' ,
						align: "left",
						formatter : function(value) {
							var auditstateName = "";
							if(value == "0") {
								auditstateName = "待审批";
							}else if(value == "1") {
								auditstateName = "审批通过";
							}else if(value == "2"){
								auditstateName = "审批不通过";
							}else {
								auditstateName = "免审批";
							}
							return auditstateName ;
						}
					},
					{
						title : '操作',
						field : 'id',
						align : 'left',
						formatter : function(value, row, index) {
							var e = '<a class="btn btn-primary btn-sm '+s_edit_h+'" href="#" mce_href="#" title="审批" onclick="check(\''
								+ row.id
								+ '\')"><i class="fa fa-edit"></i></a> ';
							var f = '<a class="btn btn-success btn-sm '+s_view_h+'" href="#" mce_href="#" title="预览" onclick="decryptedFile(\''
								+ row.fileid
								+ '\')"><i class="fa fa-search-plus"></i></a> ';
							return e + f ;
						}
					} ]
			});
}
function reLoad() {
	$('#exampleTable').bootstrapTable('refresh');
}
function check(id) {
	layer.open({
		type : 2,
		title : '审批',
		maxmin : true,
		shadeClose : false, // 点击遮罩关闭层
		area : [ '800px', '520px' ],
		content : prefix + '/check/' + id // iframe的url
	});
}
function remove(id) {
	layer.confirm('确定要删除选中的记录？', {
		btn : [ '确定', '取消' ]
	}, function() {
		$.ajax({
			url : prefix+"/remove",
			type : "post",
			data : {
				'id' : id
			},
			success : function(r) {
				if (r.code==0) {
					layer.msg(r.msg);
					reLoad();
				}else{
					layer.msg(r.msg);
				}
			}
		});
	})
}

function resetPwd(id) {
}
function batchRemove() {
	var rows = $('#exampleTable').bootstrapTable('getSelections'); // 返回所有选择的行，当没有选择的记录时，返回一个空数组
	if (rows.length == 0) {
		layer.msg("请选择要删除的数据");
		return;
	}
	layer.confirm("确认要删除选中的'" + rows.length + "'条数据吗?", {
		btn : [ '确定', '取消' ]
		// 按钮
	}, function() {
		var ids = new Array();
		// 遍历所有选择的行数据，取每条数据对应的ID
		$.each(rows, function(i, row) {
			ids[i] = row['id'];
		});
		$.ajax({
			type : 'POST',
			data : {
				"ids" : ids
			},
			url : prefix + '/batchRemove',
			success : function(r) {
				if (r.code == 0) {
					layer.msg(r.msg);
					reLoad();
				} else {
					layer.msg(r.msg);
				}
			}
		});
	}, function() {

	});
}

//init 时间控件
$('.input-daterange').datepicker({
	autoclose: true,
	todayBtn: "linked"
});

//重置输入框
function reSet(){
	cleardata("formSearch");
	reLoad();
}

function decryptedFile(fileid) {
	$.ajax({
		type : 'POST',
		data : {
			"fileId" : fileid
		},
		url : '/sys/userFile/decryptedFile',
		success : function(r) {
			if (r.code == 0) {
				var targetFile = "/upload/" + encodeURI(r.targetFile);
				console.log(targetFile)
				let onlineImg = ['png', 'jpg', 'jpeg']
				let onlineOther = ['pdf', 'txt','doc', 'docx', 'xls', 'xlsx', 'xlsm','ppt','pptx']
				let fileTypeName = targetFile.substring(targetFile.lastIndexOf('.') + 1, targetFile.length).split('?')[0]
				let isImg = onlineImg.find((type) => type === fileTypeName)
				let isOther = onlineOther.find((type) => type === fileTypeName)
				console.log("isImg:"+isImg,fileTypeName)
				if(isImg){
					layer.open({
						type: 1,
						title: false,
						closeBtn: 0,
						shadeClose: true,
						skin: '',
						content: `<div class="fixed-img" onclick="layer.closeAll()"><img style="max-width: 800px;max-height: 800px" src=${targetFile}></div>`
					});
					return
				}
				if(isOther) {
					layer.open({
						type: 2,
						area: ['700px', '450px'],
						fixed: false, //不固定
						maxmin: true,
						content: targetFile
					});
				}else {
					layer.msg("该文件暂时不支持预览");
				}
			} else {
				layer.msg("文件信息异常");
			}
		}
	});
}